# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        Young  
# Name:         demo7_09
# Description:
# Author:       asus
# Date:         2019/3/14
#-------------------------------------------------------------------------------


# 如何使用列表，字典中单个元素作为函数参数传递进行了完整的演示

def add1(x,y,z):
    return x + y + z
print(add1(1,2,3))
print("----------------")

list = [2,3,4]
# 将列表中的2，3，4拆分，作为独立的参数值传入add1函数中
print(add1(*list))
print("----------------")


dict = {'x':100,'y':200,'z':12}
# 将字典中的x,y,z拆分成为x,y,z的三个形参值，然后传入函数
print(add1(**dict))
print("----------------")


# 用可变参数定义函数
def add2(*numbers):
    result = 0
    for number in numbers:
        result += number
    return result
print(add2(1,2,3,4,5))
print("----------------")

print(add2(*list))
print("----------------")

# 定义add3，numbers前加两个**，表示可以接收字典类型的数据
def add3(**numbers):
    result = 0
    for item in numbers.items():
        result += item[1]
    return result

print(add3(**dict))
print("----------------")


#定义一个函数只拥有普通形参的add4

def add4(numbers):
    result = 0
    for item in numbers.items():
        result += item[1]
    return result

print(add4(dict))